CircleCIのNext-generation convenience images(cimg)を使ってみた
こんにちは、CX事業本部 IoT事業部の若槻です。
CI/CDプラットフォームCircleCIでWorkflowを実行すると、次のようなWarningが出ていました。
You’re using a deprecated Docker convenience image. Upgrade to a next-gen Docker convenience image.
リンク先を見ると、これは実行環境にLegacy版のConvenience Imageを使っているためとのことです。
記述によると、Convenience Imageは、2020年により効率的なBuildが可能な次世代版(Next-generation)が導入され、現在はLegacy版の使用は非推奨となっていました。
In 2020 CircleCI introduced the next generation (next-gen) of convenience images. These new images are designed to replace the legacy convenience images that were released during the announcement of CircleCI 2.0. The next-gen CircleCI convenience images are designed from the ground up for a CI/CD environment. They are designed to be faster, more efficient, and most importantly, more reliable.
そこで今回は、CircleCIのNext-generation convenience images(cimg)を使ってみました。
やってみた
CircleCI Configを次のように修正し、Next-generation convenience imagesを使うようにします。Next-generationのImageは大抵の場合は接頭辞がcimg/
となります。各言語のImage名はNext-gen language imagesを参考にしてください。
version: 2.1 executors: node: docker: # - image: circleci/node # Legacy - image: cimg/node:17.8.0 # Next-generation
Workflowを実行すると、Spin upは正常に行われ、Warningも出なくなりました!
補足
ImageのバージョンはTagで明示的に指定する必要がある
Next-generationのImageをバージョンをTagで明示的に指定せずに使用(cimg/node
またはcimg/node:latest
)すると、エラーとなってしまいました。
version: 2.1 executors: node: docker: - image: cimg/node # バージョン指定なし
上記ConfigでWorkflowを実行するとnot found
エラーとなります。
Error response from daemon: manifest for cimg/node:latest not found: manifest unknown: manifest unknown
cimg/node - CircleCIを読むと、Imageの指定形式はバージョンが必要なようです。
cimg/node:<node-version>
LegacyのImageの時にはバージョンを明示的に指定しなくてもエラーとはならなかったため、最初このエラーに遭遇してしまいました。
おわりに
CircleCIのNext-generation convenience images(cimg)を使ってみました。
CircleCIをしばらくちゃんと使っていなかったので、キャッチアップしていきたいです。
参考
以上